package com.github.prontera.domain;

import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.github.prontera.domain.enums.ClientFollowStatusEnum;
import com.github.prontera.domain.enums.ClientStatusEnum;
import com.github.prontera.domain.enums.ClientTypeEnum;
import com.github.prontera.domain.enums.GenderEnum;
import com.github.prontera.domain.enums.RealAuthStatusEnum;
import com.github.prontera.domain.enums.RegisterChannelEnum;
import com.github.prontera.domain.enums.UserStatusEnum;
import com.github.prontera.domain.enums.VipStatusEnum;
import com.github.prontera.model.BasicDomain;
import com.github.prontera.security.EncodeUtil;
import com.github.prontera.util.converter.jackson.LocalDateToIso8601Serializer;
import com.github.prontera.util.converter.jackson.OffsetDateTimeToIso8601Serializer;

import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 
 * u_client-客户端
 *
 */
@ToString
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class Client extends BasicDomain{

	private static final long serialVersionUID = 1L;
    
	/**
	 * UID
	 */
	@ApiModelProperty(value = "UID")
    private String uid;
	/**
	 * 客户虚拟ID
	 */
	@ApiModelProperty(value = "cid")
	private String cid;
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
    private String nickname;
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
    private String username;
	/**
	 * 
	 */
	@ApiModelProperty(value = "客户标签")
	private String rentSkills;
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
    private String mobile;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime createTime;
	/**
	 * 最后一次成为VIP到期时间
	 */
	@ApiModelProperty(value = "最后一次成为VIP到期时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime lastVipExpireTime;
	/**
	 * 最后一次成为VIP时间
	 */
	@ApiModelProperty(value = "最后一次成为VIP时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime lastVipTime;
	/**
	 * VIP类型
	 */
	@ApiModelProperty(value = "VIP类型")
	private Long vipAmountId;
	/**
	 * vip状态, 0:不是VIP,1:是VIP,2:退款中,3:待审核(充值成为VIP)
	 */
	@ApiModelProperty(value = "vip状态, 0:不是VIP,1:是VIP,2:退款中,3:待审核(充值成为VIP)")
    private VipStatusEnum vipStatus;
	/**
	 * 达人状态, 0:是,1:不是,2:待审核
	 */
	@ApiModelProperty(value = "达人状态, 0:是,1:不是,2:待审核,3:冻结中")
	private ClientStatusEnum talentStatus;
	/**
	 * 本次成为达人时间
	 */
	@ApiModelProperty(value = "本次成为达人时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime talentTime; 
	/**
	 * 最后一次成为达人时间
	 */
	@ApiModelProperty(value = "最后一次成为达人时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
	private OffsetDateTime lastTalentTime;
	/**
	 * 1:正常,2:禁用
	 */
	@ApiModelProperty(value = "0:正常,1:冻结")
    private UserStatusEnum status;
	/**
	 *实名认证状态  0:未实名, 1:已认证
	 */
	@ApiModelProperty(value = "实名认证状态  0:未实名, 1:已认证")
	private RealAuthStatusEnum realAuthStatus;
	/**
	 * 禁用原因
	 */
	@ApiModelProperty(value = "禁用原因")
    private String reason;
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
    private String password;
	/**
	 * 可提现金额总金额
	 */
	@ApiModelProperty(value = "可提现金额总金额")
    private BigDecimal cashAmount;
	/**
	 * 收入总金额
	 */
	@ApiModelProperty(value = "收入总金额")
    private BigDecimal incomeAmount;
	/**
	 * 任务押金
	 */
	@ApiModelProperty(value = "任务押金")
	private BigDecimal taskDepositAmount;
	/**
	 * 退还押金时间
	 */
	@ApiModelProperty(value = "退还押金时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime lastBackDepositTime;
	/**
	 * 押金金额
	 */
	@ApiModelProperty(value = "押金金额")
    private BigDecimal depositAmount;
	/**
	 * 我的唐豆豆
	 */
	@ApiModelProperty(value = "我的唐豆豆")
    private BigDecimal bBean;
	/**
	 * 性别 0:男,1:女
	 */
	@ApiModelProperty(value = "性别 0:男,1:女")
    private GenderEnum gender;
	/**
	 * 1人名币可兑换唐豆豆
	 */
	@ApiModelProperty(value = "1人名币可兑换唐豆豆")
    private BigDecimal beanRmbRate;
	/**
	 * 头像
	 */
	@ApiModelProperty(value = "头像")
    private String headImage;
	/**
	 * 个人展示照片
	 */
	@ApiModelProperty(value = "个人展示照片")
    private String photos;
	/**
	 * 生日
	 */
	@ApiModelProperty(value = "生日")
	@JsonSerialize(using = LocalDateToIso8601Serializer.class)
    private LocalDate birthday;
	/**
	 * 职业
	 */
	@ApiModelProperty(value = "职业")
    private Long occupationLevel1Id;
	/**
	 * 职业
	 */
	@ApiModelProperty(value = "职业")
    private String occupationValue;
	/**
	 * 职业
	 */
	@ApiModelProperty(value = "职业")
	private String occupationLevel2Id;
	
	/**
	 * 职业
	 */
	@ApiModelProperty(value = "职业文本")
    private String occupationLevel2Value;
	
	/**
	 * 身高
	 */
	@ApiModelProperty(value = "身高")
    private Double height;
	/**
	 * 常住地所在省
	 */
	@ApiModelProperty(value = "常住地所在省")
    private Long permanentProvinceCode;
	/**
	 * 常住地所在市
	 */
	@ApiModelProperty(value = "常住地所在市")
    private Long permanentCityCode;
	/**
	 * 常住地所在区
	 */
	@ApiModelProperty(value = "常住地所在区")
    private Long permanentAreaCode;
	/**
	 * 常住地,组合拼起来
	 */
	@ApiModelProperty(value = "常住地,组合拼起来")
    private String permanent;
	
	/**
	 * 个人标签
	 */
	@ApiModelProperty(value = "个人标签")
    private Long interestLevel1Id;
	
	/**
	 * 个人标签
	 */
	@ApiModelProperty(value = "个人标签")
    private String interestLevel2Id;
	/**
	 * 个人标签
	 */
	@ApiModelProperty(value = "个人标签")
    private String interestValue;
	/**
	 * 爱好
	 */
	@ApiModelProperty(value = "爱好")
    private Long hobby;
	
	/**
	 * 爱好
	 */
	@ApiModelProperty(value = "爱好")
    private String hobbyValue;
	
	/**
	 * 余额
	 */
	@ApiModelProperty(value = "余额")
    private BigDecimal amount;
	
	/**
	 * 锁定金额
	 */
	@ApiModelProperty(value = "锁定金额")
    private BigDecimal locakedCashAmount;
	
	/**
	 * 微信号
	 */
	@ApiModelProperty(value = "微信号")
    private String wechat;
	/**
	 * 我的关注人数
	 */
	@ApiModelProperty(value = "我的关注人数")
    private Integer followCount;
	/**
	 * 我的粉丝人数
	 */
	@ApiModelProperty(value = "我的粉丝人数")
    private Integer fansCount;
	/**
	 * 发的朋友圈个数
	 */
	@ApiModelProperty(value = "发的朋友圈个数")
    private Integer coterieCount;
	/**
	 * 我发的视频个数
	 */
	@ApiModelProperty(value = "我发的视频个数")
    private Integer videoCount;
	/**
	 *我访问得用户个数
	 */
	@ApiModelProperty(value = "我访问得用户个数")
    private Integer visitorCount;
	/**
	 * 最后一次签到时间
	 */
	@ApiModelProperty(value = "最后一次签到时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime lastSignTime;
	/**
	 *签到次数
	 */
	@ApiModelProperty(value = "签到次数")
    private Integer signCount;
	/**
	 * 系统给用户得评分
	 */
	@ApiModelProperty(value = "系统给用户得评分")
    private Integer score;
	/**
	 * 类型 0:自建,1:拉取
	 */
	@ApiModelProperty(value = "类型 0:自建,1:拉取")
    private ClientTypeEnum type;
	/**
	 * 分享码
	 */
	@ApiModelProperty(value = "分享码")
    private String shareCode;
	/**
	 * 微信登录openid
	 */
	@ApiModelProperty(value = "微信登录openid")
    private String weixinLoginCode;
	/**
	 * 微博登录openid
	 */
	@ApiModelProperty(value = "微博登录openid")
    private String weiboLoginCode;
	/**
	 * qq登录openid
	 */
	@ApiModelProperty(value = "qq登录openid")
    private String qqLoginCode;
	/**
	 * 是否实名认证:  0:未实名认真, 1:已经认真
	 */
	@ApiModelProperty(value = "是否实名认证:  0:未实名认真, 1:已经认真")
    private Integer isRealEnsure;
	/**
	 * 身份证
	 */
	@ApiModelProperty(value = "身份证")
    private String idCard;
	/**
	 * 身份证照(认证)
	 */
	@ApiModelProperty(value = "身份证照(认证)")
	private String idCardImages;
	/**
	 * 真是用户图片(认证)
	 */
	@ApiModelProperty(value = "真是用户图片(认证)")
    private String realClientImage;
	/**
	 * 芝麻分
	 */
	@ApiModelProperty(value = "芝麻分")
    private Integer sesamePoint;
	/**
	 * 芝麻信用等级
	 */
	@ApiModelProperty(value = "芝麻信用等级")
    private String sesameLevel;
	/**
	 * 经度
	 */
	@ApiModelProperty(value = "经度")
    private Double pointLog;
	/**
	 * 纬度
	 */
	@ApiModelProperty(value = "纬度")
    private Double pointLat;
	/**
	 * 出租状态, 0:未出租,1:出租中
	 */
	@ApiModelProperty(value = "出租状态, 0:未出租,1:出租中")
    private Integer isRent;
	/**
	 * 总计出租次数
	 */
	@ApiModelProperty(value = "总计出租次数")
    private Integer rentCount;
	/**
	 * 累计参与活动次数
	 */
	@ApiModelProperty(value = "累计参与活动次数")
    private Integer activityCount;
	/**
	 * 发起问题个数
	 */
	@ApiModelProperty(value = "发起问题个数")
    private Integer issueCount;
	/**
	 * 微信号价格
	 */
	@ApiModelProperty(value = "微信号价格")
    private BigDecimal wechatPrice;
	/**
	 * 微信号擦汗看次数
	 */
	@ApiModelProperty(value = "微信号擦汗看次数")
    private Integer wechatCount;
	/**
	 * 年龄
	 */
	@ApiModelProperty(value = "年龄")
	private Integer age;
	/**
	 * 达人分类
	 */
	@ApiModelProperty(value = "达人分类")
	private List<ClientRent> clientRents;
	/**
	 * 达人分类合并
	 */
	@ApiModelProperty(value = "达人分类合并")
	private String rents;
	/**
	 * 是否呗当前用户查看过,不为空就标示已经看过
	 */
	@ApiModelProperty(value = "是否呗当前用户查看过,不为空就标示已经看过")
	@JsonIgnore
    private Long hasLookWechat;
	/**
	 * 查看用户ID
	 */
	@JsonIgnore
	@ApiModelProperty(value = "查看用户ID")
    private Long lookClientId;
	/**
	 * 出租时间
	 */
	@ApiModelProperty(value = "出租时间")
	private String  leaseTime;
	/**
	 * 胸围
	 */
	@ApiModelProperty(value = "胸围")
	private String bwhBust;
	/**
	 * 腰围
	 */
	@ApiModelProperty(value = "腰围")
	private String bwhWaist;
	/**
	 * 体重
	 */
	@ApiModelProperty(value = "体重")
	private Double weight;
	/**
	 * 臀围
	 */
	@ApiModelProperty(value = "臀围")
	private String bwhHips;
	/**
	 * 注册通道, 0:原生android-->app,1:原生ios-->app, 2:android-app-->微信, 3:ios--app-->微信,4:android---app-->微博,5:ios---app-->微博,6:android--app-->qq,7:ios---app-->qq,8:微信公众号,9:pc
	 */
	@ApiModelProperty(value = "注册通道, 0:原生android-->app,1:原生ios-->app, 2:android-app-->微信, 3:ios--app-->微信,4:android---app-->微博,5:ios---app-->微博,6:android--app-->qq,7:ios---app-->qq,8:微信公众号,9:pc")
	private RegisterChannelEnum registerChannel;
	
	@ApiModelProperty(value = "认证时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime realTime;
	
	
	@ApiModelProperty(value = "最后登录时间")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime lastLoginTime;
	
	/**
	 * 关注双方关系, 0:主动关注方, 1:被动也关注(双方关注),2:被关注
	 */
	@ApiModelProperty(value = "关注双方关系, 0:主动关注方, 1:被动也关注(双方关注),2:被关注")
	private ClientFollowStatusEnum followStatus;
	/**
	 * 是否可以关注
	 */
	@ApiModelProperty(value = "是否可以关注")
	private Boolean hasFollow;
	
	@JsonIgnore
	private Boolean photosIsNull;
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
    private String nickname_;
	/**
	 * 距离
	 */
	@ApiModelProperty(value = "距离")
	private Double radius;
	/**
	 * 唐钻
	 */
	@ApiModelProperty(value = "唐钻")
	private BigDecimal diamondAmount;
	/**
	 * 城市编码
	 */
	@ApiModelProperty(value = "城市编码")
    private String cityCode;
	/**
	 * 定位城市
	 */
	@ApiModelProperty(value = "定位城市")
    private String city;
	
	private Boolean hasBindWechat;
	
	@JsonIgnore
	private Boolean nullVipAmountId;
	
	private Long followClientId;
	private Long followFollowId;
	/**
	 * 是否隐藏: 0:是  1:否
	 */
	@ApiModelProperty(value = "是否隐藏: 0:是  1:否")
	private Integer hasHidden;
	/**
	 * 邀请人ID
	 */
	@ApiModelProperty(value = "邀请人ID")
    private Long invitationClientId;
	
	
	private IssueAnswer issueAnswer;
	
	public Long getInvitationClientId() {
		return invitationClientId;
	}

	public void setInvitationClientId(Long invitationClientId) {
		this.invitationClientId = invitationClientId;
	}

	public BigDecimal getTaskDepositAmount() {
		return taskDepositAmount;
	}

	public void setTaskDepositAmount(BigDecimal taskDepositAmount) {
		this.taskDepositAmount = taskDepositAmount;
	}

	public IssueAnswer getIssueAnswer() {
		return issueAnswer;
	}

	public void setIssueAnswer(IssueAnswer issueAnswer) {
		this.issueAnswer = issueAnswer;
	}

	public Integer getHasHidden() {
		return hasHidden;
	}

	public void setHasHidden(Integer hasHidden) {
		this.hasHidden = hasHidden;
	}

	public Client(){
    
    }
	
	public OffsetDateTime getTalentTime() {
		return talentTime;
	}

	public void setTalentTime(OffsetDateTime talentTime) {
		this.talentTime = talentTime;
	}

	public BigDecimal getDiamondAmount() {
		return diamondAmount;
	}

	public void setDiamondAmount(BigDecimal diamondAmount) {
		this.diamondAmount = diamondAmount;
	}

	public Long getFollowFollowId() {
		return followFollowId;
	}

	public void setFollowFollowId(Long followFollowId) {
		this.followFollowId = followFollowId;
	}

	public Long getFollowClientId() {
		return followClientId;
	}

	public void setFollowClientId(Long followClientId) {
		this.followClientId = followClientId;
	}

	public Integer getVisitorCount() {
		return visitorCount;
	}

	public void setVisitorCount(Integer visitorCount) {
		this.visitorCount = visitorCount;
	}

	public Boolean getNullVipAmountId() {
		return nullVipAmountId;
	}

	public void setNullVipAmountId(Boolean nullVipAmountId) {
		this.nullVipAmountId = nullVipAmountId;
	}

	public String getCityCode() {
		return cityCode;
	}

	public OffsetDateTime getLastSignTime() {
		return lastSignTime;
	}

	public void setLastSignTime(OffsetDateTime lastSignTime) {
		this.lastSignTime = lastSignTime;
	}

	public Integer getSignCount() {
		return signCount;
	}

	public void setSignCount(Integer signCount) {
		this.signCount = signCount;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public Double getRadius() {
		return radius;
	}

	public void setRadius(Double radius) {
		this.radius = radius;
	}

	public String getRents() {
		return rents;
	}

	public void setRents(String rents) {
		this.rents = rents;
	}

	public BigDecimal getCashAmount() {
		return cashAmount;
	}

	public void setCashAmount(BigDecimal cashAmount) {
		this.cashAmount = cashAmount;
	}

	public String getIdCard() {
		return idCard;
	}

	public void setIdCard(String idCard) {
		this.idCard = idCard;
	}

	public Double getWeight() {
		return weight;
	}

	public void setWeight(Double weight) {
		this.weight = weight;
	}

	public Boolean getHasFollow() {
		return hasFollow;
	}

	public void setHasFollow(Boolean hasFollow) {
		this.hasFollow = hasFollow;
	}

	public ClientFollowStatusEnum getFollowStatus() {
		return followStatus;
	}

	public void setFollowStatus(ClientFollowStatusEnum followStatus) {
		this.followStatus = followStatus;
	}

	public String getRentSkills() {
		return rentSkills;
	}

	public void setRentSkills(String rentSkills) {
		this.rentSkills = rentSkills;
	}

	public String getOccupationValue() {
		return occupationValue;
	}

	public void setOccupationValue(String occupationValue) {
		this.occupationValue = occupationValue;
	}

	public String getInterestValue() {
		return interestValue;
	}

	public void setInterestValue(String interestValue) {
		this.interestValue = interestValue;
	}

	public OffsetDateTime getLastLoginTime() {
		return lastLoginTime;
	}

	public void setLastLoginTime(OffsetDateTime lastLoginTime) {
		this.lastLoginTime = lastLoginTime;
	}

	public Boolean getHasBindWechat() {
		return hasBindWechat;
	}
	
	public void setHasBindWechat(Boolean hasBindWechat) {
		this.hasBindWechat = hasBindWechat;
	}

	public Boolean getPhotosIsNull() {
		return photosIsNull;
	}

	public void setPhotosIsNull(Boolean photosIsNull) {
		this.photosIsNull = photosIsNull;
	}

	public String getNickname_() {
		if(nickname!=null){
			try {
				return EncodeUtil.urlDecode(nickname);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		return null;
	}

	
	/**
	 * @return the realTime
	 */
	public OffsetDateTime getRealTime() {
		return realTime;
	}



	/**
	 * @param realTime the realTime to set
	 */
	public void setRealTime(OffsetDateTime realTime) {
		this.realTime = realTime;
	}



	public String getWeiboLoginCode() {
		return weiboLoginCode;
	}

	public void setWeiboLoginCode(String weiboLoginCode) {
		this.weiboLoginCode = weiboLoginCode;
	}

	public RegisterChannelEnum getRegisterChannel() {
		return registerChannel;
	}

	public void setRegisterChannel(RegisterChannelEnum registerChannel) {
		this.registerChannel = registerChannel;
	}

	/**
	 * @return the locakedCashAmount
	 */
	public BigDecimal getLocakedCashAmount() {
		return locakedCashAmount;
	}

	/**
	 * @param locakedCashAmount the locakedCashAmount to set
	 */
	public void setLocakedCashAmount(BigDecimal locakedCashAmount) {
		this.locakedCashAmount = locakedCashAmount;
	}

	public String getCid() {
		return cid;
	}

	public void setCid(String cid) {
		this.cid = cid;
	}

	public String getBwhBust() {
		return bwhBust;
	}

	public void setBwhBust(String bwhBust) {
		this.bwhBust = bwhBust;
	}

	public String getBwhWaist() {
		return bwhWaist;
	}

	public void setBwhWaist(String bwhWaist) {
		this.bwhWaist = bwhWaist;
	}

	public String getBwhHips() {
		return bwhHips;
	}

	public void setBwhHips(String bwhHips) {
		this.bwhHips = bwhHips;
	}

	public String getLeaseTime() {
		return leaseTime;
	}

	public void setLeaseTime(String leaseTime) {
		this.leaseTime = leaseTime;
	}

	public VipStatusEnum getVipStatus() {
		return vipStatus;
	}

	public void setVipStatus(VipStatusEnum vipStatus) {
		this.vipStatus = vipStatus;
	}

	public Long getLookClientId() {
		return lookClientId;
	}

	public void setLookClientId(Long lookClientId) {
		this.lookClientId = lookClientId;
	}

	public Long getHasLookWechat() {
		return hasLookWechat;
	}

	public void setHasLookWechat(Long hasLookWechat) {
		this.hasLookWechat = hasLookWechat;
	}

	/**
	 * @return the hobbyValue
	 */
	public String getHobbyValue() {
		return hobbyValue;
	}

	/**
	 * @param hobbyValue the hobbyValue to set
	 */
	public void setHobbyValue(String hobbyValue) {
		this.hobbyValue = hobbyValue;
	}

	/**
	 * @return the occupationLevel2Value
	 */
	public String getOccupationLevel2Value() {
		return occupationLevel2Value;
	}

	/**
	 * @param occupationLevel2Value the occupationLevel2Value to set
	 */
	
	public void setOccupationLevel2Value(String occupationLevel2Value) {
		this.occupationLevel2Value = occupationLevel2Value;
	}

	/**
	 * @return the occupationLevel2Id
	 */
	public String getOccupationLevel2Id() {
		return occupationLevel2Id;
	}

	/**
	 * @param occupationLevel2Id the occupationLevel2Id to set
	 */
	public void setOccupationLevel2Id(String occupationLevel2Id) {
		this.occupationLevel2Id = occupationLevel2Id;
	}

	/**
	 * @return the interestLevel2Id
	 */
	public String getInterestLevel2Id() {
		return interestLevel2Id;
	}

	/**
	 * @param interestLevel2Id the interestLevel2Id to set
	 */
	public void setInterestLevel2Id(String interestLevel2Id) {
		this.interestLevel2Id = interestLevel2Id;
	}

	public RealAuthStatusEnum getRealAuthStatus() {
		return realAuthStatus;
	}

	public void setRealAuthStatus(RealAuthStatusEnum realAuthStatus) {
		this.realAuthStatus = realAuthStatus;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public List<ClientRent> getClientRents() {
		return clientRents;
	}

	public void setClientRents(List<ClientRent> clientRents) {
		this.clientRents = clientRents;
	}
    
    public String getUid() {
        return this.uid;
    }
    
    public void setUid(String uid) {
        this.uid = uid;
    }
    public String getNickname() {
        return this.nickname;
    }
    
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    public String getUsername() {
        return this.username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
    public String getMobile() {
        return this.mobile;
    }
    
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public OffsetDateTime getCreateTime() {
        return this.createTime;
    }
    
    public void setCreateTime(OffsetDateTime createTime) {
        this.createTime = createTime;
    }
    public OffsetDateTime getLastVipExpireTime() {
        return this.lastVipExpireTime;
    }
    
    public void setLastVipExpireTime(OffsetDateTime lastVipExpireTime) {
        this.lastVipExpireTime = lastVipExpireTime;
    }
    public OffsetDateTime getLastVipTime() {
        return this.lastVipTime;
    }
    
    public void setLastVipTime(OffsetDateTime lastVipTime) {
        this.lastVipTime = lastVipTime;
    }
    public ClientStatusEnum getTalentStatus() {
        return this.talentStatus;
    }
    
    public void setTalentStatus(ClientStatusEnum isTalent) {
        this.talentStatus = isTalent;
    }
    public OffsetDateTime getLastTalentTime() {
        return this.lastTalentTime;
    }
    
    public void setLastTalentTime(OffsetDateTime lastTalentTime) {
        this.lastTalentTime = lastTalentTime;
    }
    public UserStatusEnum getStatus() {
        return this.status;
    }
    
    public void setStatus(UserStatusEnum status) {
        this.status = status;
    }
    public String getReason() {
        return this.reason;
    }
    
    public void setReason(String reason) {
        this.reason = reason;
    }
    public String getPassword() {
        return this.password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    public BigDecimal getIncomeAmount() {
        return this.incomeAmount;
    }
    
    public void setIncomeAmount(BigDecimal incomeAmount) {
        this.incomeAmount = incomeAmount;
    }
    public OffsetDateTime getLastBackDepositTime() {
        return this.lastBackDepositTime;
    }
    
    public void setLastBackDepositTime(OffsetDateTime lastBackDepositTime) {
        this.lastBackDepositTime = lastBackDepositTime;
    }
    public BigDecimal getDepositAmount() {
        return this.depositAmount;
    }
    
    public void setDepositAmount(BigDecimal depositAmount) {
        this.depositAmount = depositAmount;
    }
    public BigDecimal getBBean() {
        return this.bBean;
    }
    
    public void setBBean(BigDecimal bBean) {
        this.bBean = bBean;
    }
    public GenderEnum getGender() {
        return this.gender;
    }
    
    public void setGender(GenderEnum gender) {
        this.gender = gender;
    }
    public BigDecimal getBeanRmbRate() {
        return this.beanRmbRate;
    }
    
    public void setBeanRmbRate(BigDecimal beanRmbRate) {
        this.beanRmbRate = beanRmbRate;
    }
    public String getHeadImage() {
        return this.headImage;
    }
    
    public void setHeadImage(String headImage) {
        this.headImage = headImage;
    }
    public String getPhotos() {
        return this.photos;
    }
    
    public void setPhotos(String photos) {
        this.photos = photos;
    }
    public LocalDate  getBirthday() {
        return this.birthday;
    }
    
    public void setBirthday(LocalDate birthday) {
        this.birthday = birthday;
    }
    public Long getOccupationLevel1Id() {
        return this.occupationLevel1Id;
    }
    
    public void setOccupationLevel1Id(Long occupationLevel1Id) {
        this.occupationLevel1Id = occupationLevel1Id;
    }

    public Double getHeight() {
        return this.height;
    }
    
    public void setHeight(Double height) {
        this.height = height;
    }
    public Long getPermanentProvinceCode() {
        return this.permanentProvinceCode;
    }
    
    public void setPermanentProvinceCode(Long permanentProvinceId) {
        this.permanentProvinceCode = permanentProvinceId;
    }
    public Long getPermanentCityCode() {
        return this.permanentCityCode;
    }
    
    public void setPermanentCityCode(Long permanentCityId) {
        this.permanentCityCode = permanentCityId;
    }
    public Long getPermanentAreaCode() {
        return this.permanentAreaCode;
    }
    
    public void setPermanentAreaCode(Long permanentAreaId) {
        this.permanentAreaCode = permanentAreaId;
    }
    public String getPermanent() {
        return this.permanent;
    }
    
    public void setPermanent(String permanent) {
        this.permanent = permanent;
    }
    public Long getInterestLevel1Id() {
        return this.interestLevel1Id;
    }
    
    public void setInterestLevel1Id(Long interestLevel1Id) {
        this.interestLevel1Id = interestLevel1Id;
    }
 
    public Long getHobby() {
        return this.hobby;
    }
    
    public void setHobby(Long hobby) {
        this.hobby = hobby;
    }
    public BigDecimal getAmount() {
        return this.amount;
    }
    
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }
    
    public String getWechat() {
		return wechat;
	}

	public void setWechat(String wechat) {
		this.wechat = wechat;
	}
	
	public BigDecimal getWechatPrice() {
		return wechatPrice;
	}

	public void setWechatPrice(BigDecimal wechatPrice) {
		this.wechatPrice = wechatPrice;
	}

	public Integer getWechatCount() {
		return wechatCount;
	}

	public void setWechatCount(Integer wechatCount) {
		this.wechatCount = wechatCount;
	}

	public Integer getFollowCount() {
        return this.followCount;
    }
    
    public void setFollowCount(Integer followCount) {
        this.followCount = followCount;
    }
    public Integer getFansCount() {
        return this.fansCount;
    }
    
    public void setFansCount(Integer fansCount) {
        this.fansCount = fansCount;
    }
    public Integer getCoterieCount() {
        return this.coterieCount;
    }
    
    public void setCoterieCount(Integer coterieCount) {
        this.coterieCount = coterieCount;
    }
    public Integer getVideoCount() {
        return this.videoCount;
    }
    
    public void setVideoCount(Integer videoCount) {
        this.videoCount = videoCount;
    }
    public ClientTypeEnum getType() {
        return this.type;
    }
    
    public void setType(ClientTypeEnum type) {
        this.type = type;
    }
    public String getShareCode() {
        return this.shareCode;
    }
    
    public void setShareCode(String shareCode) {
        this.shareCode = shareCode;
    }
    public String getWeixinLoginCode() {
        return this.weixinLoginCode;
    }
    
    public void setWeixinLoginCode(String weixinLoginCode) {
        this.weixinLoginCode = weixinLoginCode;
    }
    public String getQqLoginCode() {
        return this.qqLoginCode;
    }
    
    public void setQqLoginCode(String qqLoginCode) {
        this.qqLoginCode = qqLoginCode;
    }
    public Integer getIsRealEnsure() {
        return this.isRealEnsure;
    }
    
    public void setIsRealEnsure(Integer isRealEnsure) {
        this.isRealEnsure = isRealEnsure;
    }
    public String getIdCardImages() {
        return this.idCardImages;
    }
    
    public void setIdCardImages(String idCardImges) {
        this.idCardImages = idCardImges;
    }
    public String getRealClientImage() {
        return this.realClientImage;
    }
    
    public void setRealClientImage(String realClientImage) {
        this.realClientImage = realClientImage;
    }
    public Integer getSesamePoint() {
        return this.sesamePoint;
    }
    
    public void setSesamePoint(Integer sesamePoint) {
        this.sesamePoint = sesamePoint;
    }
    public String getSesameLevel() {
        return this.sesameLevel;
    }
    
    public void setSesameLevel(String sesameLevel) {
        this.sesameLevel = sesameLevel;
    }
    public Double getPointLog() {
        return this.pointLog;
    }
    
    public void setPointLog(Double pointLog) {
        this.pointLog = pointLog;
    }
    public Double getPointLat() {
        return this.pointLat;
    }
    
    public void setPointLat(Double pointLat) {
        this.pointLat = pointLat;
    }
    public Integer getIsRent() {
        return this.isRent;
    }
    
    public void setIsRent(Integer isRent) {
        this.isRent = isRent;
    }
    public Integer getRentCount() {
        return this.rentCount;
    }
    
    public void setRentCount(Integer rentCount) {
        this.rentCount = rentCount;
    }
    public Integer getActivityCount() {
        return this.activityCount;
    }
    
    public void setActivityCount(Integer activityCount) {
        this.activityCount = activityCount;
    }
    public Integer getIssueCount() {
        return this.issueCount;
    }
    
    public void setIssueCount(Integer issueCount) {
        this.issueCount = issueCount;
    }

	public Long getVipAmountId() {
		return vipAmountId;
	}

	public void setVipAmountId(Long vipAmountId) {
		this.vipAmountId = vipAmountId;
	}

	/**
	 * @return the score
	 */
	public Integer getScore() {
		return score;
	}

	/**
	 * @param score the score to set
	 */
	public void setScore(Integer score) {
		this.score = score;
	}
}
